package com.topvision.myviewtest.algorithm.sort;

/**
 * @FileName : SelectionSort.java
 * @Author : Zero_Tzz
 * @E-mail : 497847377@qq.com
 * @Data : 2018-06-30 22:28
 * @Describe : 选择排序 O(n^2)
 */
public class SelectionSort extends BaseSort {

    public static Integer[] sort() {
        Integer[] arr = generateRandomArray();
        int length = arr.length;
        for (int i = 0; i < length; i++) {
            // 寻找[i,n)区间里的最小值
            int minIndex = i;
            for (int j = i + 1; j < length; j++) {
                // 第i位置跟后面所有位置比较，最小值放在第i个为止，此时第i为止的值为最小值
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }
            int temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
        }
        return arr;
    }
}
